/**
 * 配置 api 接口
 * 通过不同配置，让组件调用不同的接口
 * */

/**
 * api 接口
 *
 * 0. 通用
 * getYearMonthList => 获取评分年月信息
 * getKpiYearMonthList => 获取 kpi 评分年月信息
 * getIndexCodes => 获取指标下拉菜单
 * getTaskStatus => 获取任务状态
 *
 * 1. 绩效填报
 * getKaFillConditions => 【获取】获取绩效填报-列表条件
 * getKaFillDatagrid => 【获取】绩效填报-列表信息
 * saveKaFill => 【保存】绩效填报-列表保存
 *
 * 2. 绩效目标值
 * getKaTargetConditions => 【获取】绩效目标值-列表条件
 * getKaTargetDatagrid => 【获取】绩效目标值-列表信息
 * saveKaTargetSave => 【保存】设定目标值-列表保存
 *
 * 3. 权重管理
 * getKaWeightConditions => 【获取】获取权重管理-列表条件
 * getKaWeightDatagrid => 【获取】获取权重管理-列表信息
 * saveKaWeightSave => 【保存】获取权重管理-列表保存
 *
 * 4. 绩效审核记录
 * getOrgTypes => 【获取】组织类型(指标归属)信息接口
 * getAuditRecords => 【获取】绩效审核记录-列表信息
 *
 * 5. 绩效计算审核
 * getKaMgrConditions => 【获取】绩效汇总计算-列表条件
 * getKaMgrStatus => 【获取】审核状态
 * getKaMgrDatagrid => 【获取】绩效汇总计算-列表信息
 * saveKaMgrSave => 【保存】绩效汇总计算-列表保存
 * kaMgrCalc => 【计算】得分计算
 * auditAction => 提交审核
 * indexAttrs => 获取维度下拉菜单
 * */
import {
  getYearMonthList, getKpiYearMonthList,
  currentYearMonthList,
  getIndexCodes, getTaskStatus,
  getKaFillConditions, getKaFillDatagrid, saveKaFill,
  getKaTargetConditions, getKaTargetDatagrid, saveKaTargetSave,
  getKaWeightConditions, getKaWeightDatagrid, saveKaWeightSave,
  getOrgTypes, getAuditRecords,
  getKaMgrConditions, getKaMgrStatus, getKaMgrDatagrid, saveKaMgrSave,
  kaMgrCalc, auditAction, indexAttrs
} from '@/api/api.js';

/* api 通用服务 */
import { apiService } from '@/api/api.service.js';




/* 返回 api 接口 */
const apiConfig = (() => {
  return {
    /* 通用接口 */
    common: {
      // 获取评分年月信息
      getYearMonthList: () => { return apiService(getYearMonthList()); },

      // 获取 kpi 评分年月信息
      getKpiYearMonthList: () => { return apiService(getKpiYearMonthList()); },
      currentYearMonthList: () => { return apiService(currentYearMonthList()); },

      // 获取指标下拉菜单
      getIndexCodes: (param) => { return apiService(getIndexCodes(param)); },

      // 获取任务状态
      getTaskStatus: (param) => { return apiService(getTaskStatus(param)); },

      // 获取维度下拉菜单
      getIndexAttrs: () => { return apiService(indexAttrs()); }
    },

    /**
     * 绩效目标值实际值填报
     * */
    fill: {
      // 获取 绩效填报列表条件
      getMenu: (param) => { return apiService(getKaFillConditions(param)); },

      // 获取 绩效填报列表
      getData: (param) => { return apiService(getKaFillDatagrid(param)); },

      // 保存 绩效填报
      save: (param) => { return apiService(saveKaFill(param)); }
    },

    /**
     * 绩效目标值
     * */
    target: {
      // 获取 绩效目标值列表条件
      getMenu: (param) => { return apiService(getKaTargetConditions(param)); },

      // 获取 绩效目标值列表
      getData: (param) => { return apiService(getKaTargetDatagrid(param)); },

      // 保存 绩效目标值列表
      save: (param) => { return apiService(saveKaTargetSave(param)); }
    },

    /**
     * 权重管理
     * */
    weight: {
      // 获取 权重管理列表条件
      getMenu: () => { return apiService(getKaWeightConditions()); },

      // 获取 权重管理列表
      getData: (param) => { return apiService(getKaWeightDatagrid(param)); },

      // 保存 权重管理列表
      save: (param) => { return apiService(saveKaWeightSave(param)); }
    },

    /**
     * 绩效审核记录
     * */
    audit: {
      // 获取 权重管理列表条件
      getMenu: () => { return apiService(getOrgTypes()); },

      // 获取 绩效审核记录列表信息
      getData: (param) => { return apiService(getAuditRecords(param)); },
    },

    /**
     * 绩效汇总计算
     * */
    mgr: {
      // 获取审核状态
      getStatus: (param) => { return apiService(getKaMgrStatus(param)) },

      // 获取 绩效汇总计算-列表条件
      getMenu: (param) => { return apiService(getKaMgrConditions(param)); },

      // 获取 绩效汇总计算-列表信息
      getData: (param) => { return apiService(getKaMgrDatagrid(param)); },

      // 提交审核
      auditAction: (param) => { return apiService(auditAction(param)); },

      // 保存 绩效汇总计算-列表信息
      save: (param) => { return apiService(saveKaMgrSave(param)); },

      // 得分计算
      calcScores: (param) => { return apiService(kaMgrCalc(param)); },
    }
  };
})();





export { apiConfig };
